package com.ruoyi.report.service.impl;


import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.report.domain.ReportShowtable;
import com.ruoyi.report.mapper.ReportShowtableMapper;
import com.ruoyi.report.service.IReportShowtableService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


/**
 * 报告展示格Service业务层处理
 * 
 * @author wry
 * @date 2023-06-20
 */
@Service
public class ReportShowtableServiceImpl implements IReportShowtableService
{
    @Autowired
    private ReportShowtableMapper reportShowtableMapper;

    /**
     * 查询报告展示格
     * 
     * @param tableId 报告展示格主键
     * @return 报告展示格
     */
    @Override
    public ReportShowtable selectReportShowtableByTableId(Long tableId)
    {
        return reportShowtableMapper.selectReportShowtableByTableId(tableId);
    }

    /**
     * 查询报告展示格列表
     * 
     * @param reportShowtable 报告展示格
     * @return 报告展示格
     */
    @Override
    public List<ReportShowtable> selectReportShowtableList(ReportShowtable reportShowtable)
    {
        return reportShowtableMapper.selectReportShowtableList(reportShowtable);
    }

    /**
     * 新增报告展示格
     * 
     * @param reportShowtable 报告展示格
     * @return 结果
     */
    @Override
    public int insertReportShowtable(ReportShowtable reportShowtable)
    {
        reportShowtable.setCreateTime(DateUtils.getNowDate());
        return reportShowtableMapper.insertReportShowtable(reportShowtable);
    }

    /**
     * 修改报告展示格
     * 
     * @param reportShowtable 报告展示格
     * @return 结果
     */
    @Override
    public int updateReportShowtable(ReportShowtable reportShowtable)
    {
        reportShowtable.setUpdateTime(DateUtils.getNowDate());
        return reportShowtableMapper.updateReportShowtable(reportShowtable);
    }

    /**
     * 批量删除报告展示格
     * 
     * @param tableIds 需要删除的报告展示格主键
     * @return 结果
     */
    @Override
    public int deleteReportShowtableByTableIds(Long[] tableIds)
    {
        return reportShowtableMapper.deleteReportShowtableByTableIds(tableIds);
    }

    /**
     * 删除报告展示格信息
     * 
     * @param tableId 报告展示格主键
     * @return 结果
     */
    @Override
    public int deleteReportShowtableByTableId(Long tableId)
    {
        return reportShowtableMapper.deleteReportShowtableByTableId(tableId);
    }
    /**
     * 校验表格名称是否唯一
     *
     * @param showtable 表格数据
     * @return 结果
     */
    @Override
    public boolean checkShowTableUnique(ReportShowtable showtable)
    {
        Long tableId = StringUtils.isNull(showtable.getTableId()) ? -1L : showtable.getTableId();
        ReportShowtable table = reportShowtableMapper.checkShowTableUnique(showtable.getReportTableName());
        if (StringUtils.isNotNull(table) && table.getTableId().longValue() != tableId.longValue())
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }
}
